#!/usr/bin/python3
# -*- coding: utf-8 -*-

"""
sys.exit()

执行该语句会直接退出程序，这也是经常使用的方法，也不需要考虑平台等因素的影响，
一般是退出Python程序的首选方法.该方法中包含一个参数status，默认为0，表示正常
退出，也可以为1，表示异常退出.

import sys
sys.exit()
sys.exit(0)
sys.exit(1)

"""

# while 循环
# 同样需要注意冒号和缩进。另外，在Python中没有do..while循环。
# 以下实例使用了 while 来计算 1 到 100 的总和：
print('while 循环')

n, sum, counter = 100, 0, 1

while counter <= n:
	sum = sum + counter
	counter += 1
print(sum);
print()


# while 循环使用 else 语句
# 在 while … else 在条件语句为 false 时执行 else 的语句块：
print('while 循环使用 else 语句')

count = 0
while count < 5:
   print (count, " 小于 5")
   count = count + 1
else:
   print (count, " 大于或等于 5")
print()


print('for 循环')
# 列表 同php数组(只能是数字下标)
# 元祖 同列表,不同之处在于元组的元素不能修改。
# 集合 重复的元素被自动去掉
# 字典 同php数组 必须键值对

list = [x*2 for x in {1,2,3,4}]
print(list)
for v in list:
	print(v)
else:
	print('循环终止');
print()

tuple = (x+1 for x in [1,2,3])
print(tuple)
for v in tuple:
	print(v)
else:
	print('循环终止');
print()

jihe = {x*2 for x in (1,2,3)}
print(jihe)
for v in jihe:
	print(v)
else:
	print('循环终止');
print()

dict = {x:x**x for x in [1,2,3]}
print(dict)
for k,v in dict.items():
	print(k,v,sep=':')
else:
	print('循环终止');
print(dict.items())
print()


# range()函数
# 如果你需要遍历数字序列，可以使用内置range()函数。它会生成数列
print('range()函数')

for i in range(5):
	print(i)
print()

# 你也可以使用range指定区间的值：不包含右区间
for i in range(2,5):
	print(i)
print()

# 也可以使range以指定数字开始并指定不同的增量(甚至可以是负数，有时这也叫做'步长'):
for i in range(0,5,2):
	print(i)
print()


# break和continue语句及循环中的else子句
# break 语句可以跳出 for 和 while 的循环体。如果你从 for 或 while 循环中终止，
# 任何对应的循环 else 块将不执行。 实例如下：
print('break和continue语句及循环中的else子句')

for i in range(5):
	if i == 2:
		break;
	print(i);
else:
	print('循环终止');
print()

# continue语句被用来告诉Python跳过当前循环块中的剩余语句，然后继续进行下一轮循环。
for i in range(5):
	if i == 2:
		continue;
	print(i);
else:
	print('循环终止');
print()


# pass 语句
# Python pass是空语句，是为了保持程序结构的完整性。
# pass 不做任何事情，一般用做占位语句，如下实例
print('pass 语句');
for letter in 'Runoob': 
   if letter == 'o':
      pass
      print ('执行 pass 块')
   print ('当前字母 :', letter)
 
print ("Good bye!")